#pragma once

#include "Includes.h"
#include "Constants.h"
#include "FindPattern.h"
#include "IMaterial.h"

class Cheats
{
public:
	bool Active;
	bool Fullbright;
	bool Whitewalls;
	bool Psychedelik;
	bool Disco;
	bool HideEntities;
	bool SimplifyEntities;
	bool Wireframe;
	bool ChromeModels;
	bool ChromeFloor;
	bool NoSky;
	bool Colorize;
	bool Asus;
	DWORD* FullbrightPtr;
	DWORD* ProxyPtr;
	DWORD* DrawEntitiesPtr;
	DWORD* DrawOtherModelsPtr;
	DWORD* ShowEnvCubeMapPtr;
	DWORD* FastNoBumpPtr;
	DWORD* SkyboxPtr;
	DWORD* ClearPtr;
	DWORD* MipLevelPtr;
public:
	void Init();
	void Enable();
	void Disable();
	void Set(bool Active);
	void SetFullbright(bool Active);
	void SetWhitewalls(bool Active);
	void SetPsychedelik(bool Active);
	void SetDisco(bool Active);
	void SetHideEntities(bool Active);
	void SetSimplifyEntities(bool Active);
	void SetWireframe(bool Active);
	void SetChromeModels(bool Active);
	void SetChromeFloor(bool Active);
	void SetNoSky(bool Active);
	void SetColorize(bool Active);
	void SetAsus(bool Active);
	void Compute();
	void ComputeAsus(IMaterial* Mat);
};

extern Cheats g_pCheats;
